With improvements in processor and software performance, and a nearly continuous reduction in the price of bulk storage, the demand for higher data communication rates continues to grow. Simplified methods and hardware for reliably transmitting and receiving large amounts of data are also valued. This becomes especially apparent with the appearance of low-cost data transmission applications, such as toy video cameras and microscopes, where high frame-rates are more important than completely accurate color reproduction.
Some solutions which have evolved include increased interconnect clocking speeds, special hardware (e.g., fiber optics and/or analog signal processing circuitry), and wide buses. Of course, each of these has its drawbacks, including the cost of implementation and the complexity of execution.
Another solution involves source synchronous data transmission combined with data pumping. The basic premise of source synchronous signaling schemes involves sending data signals along with a synchronous strobe. During each strobe cycle the strobe and the data are captured so that the incoming data can be decoded as either a binary “1” or a “0”, using the strobe as a reference. Source synchronous buses have been used in the industry for some time.
Data pumping allows data to be transmitted at some rate higher than the base clock frequency. However, the raw throughput-per-pin can never exceed the strobe signal frequency. Further, taking advantage of such technology often requires sophisticated, expensive hardware. Increasing performance may require a complete change of transmitting and receiving equipment, along with signal connections, so that the desired interconnect bandwidth can be achieved.
Thus, prior methods of increasing data communication speeds are either costly, complex, or limited to the frequency of the strobe clock. Therefore, there is a need in the art to enhance signaling bandwidth without stressing the frequency response of the interconnect. This need should be satisfied by using simple logic circuitry, which can be easily synthesized and validated. Any required analog front-end circuitry should have straightforward performance requirements, and a minimal number of conductors should be required for sending large amounts of data. Finally, improved methods of speed negotiation should adapt to increased transmission speeds as conditions permit—without user intervention.